package com.sino.second.util;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class MobPhnNumMatch {
	/*描述不同公司手机号码规则的正则表达式
	*cmcc-中国移动手机号码规则
	*cucc-中国联通手机号码规则
	*cnc--中国网通3G手机号码规则*/
	static String cmcc="^[1]{1}(([3]{1}[4-9]{1})|([5]{1}[0-9]{1}))[0-9]{8}$";
	static String cucc="^[1]{1}(([3]{1}[0-3]{1})|([5]{1}[3]{1}))[0-9]{8}$";
	static String cnc="^[1]{1}[8]{1}[89]{1}[0-9]{8}$";

	String mobPhnNum;

	public MobPhnNumMatch(String mobPhnNum)
	{
	this.mobPhnNum=mobPhnNum;
	}

	public int matchNum()
	{
	int flag;//存储匹配结果
//	判断手机号码是否是11位
	if(mobPhnNum.length()==11)
	{
	   //判断手机号码是否符合中国移动的号码规则
	   if(mobPhnNum.matches(cmcc))
	   {
	    flag=1;
	   }
	   //判断手机号码是否符合中国联通的号码规则
	   else if(mobPhnNum.matches(cucc))
	   {
	    flag=2;
	   }
	   //判断手机号码是否符合中国网通的号码规则
	   else if(mobPhnNum.matches(cnc))
	   {
	    flag=3;
	   }
	   //都不合适
	   else{
	    flag=4;
	   }
	}
//	不是11位
	else {
	   flag=5;
	}
	return flag;
	}

//	根据返回的匹配结果输出相应的信息

	public void match()
	{
	int flag;
	flag=matchNum();
	System.out.print(mobPhnNum);
	switch(flag){
	   case 1:
	    System.out.println("使中国移动的手机号码！");
	    break;
	   case 2:
	    System.out.println("使中国联通的手机号码！");
	    break;
	   case 3:
	    System.out.println("使中国网通3G的手机号码！");
	    break;
	   case 4:
	    System.out.println("不是正确的手机号码！");
	    break;
	   case 5:
	    System.out.println("不是11位的手机号码！");
	    break;
	   default:
	}
	}
	

//	主类

	public static void main(String[] args)
	{
	   boolean Flag=true;
	   while(Flag==true)
	   {
	    try{
	     System.out.print("请输入您要查询的手机号码:");
	     BufferedReader pdataIn=new BufferedReader(new InputStreamReader(System.in));
	     MobPhnNumMatch MPNM=new MobPhnNumMatch(pdataIn.readLine());
	     MPNM.match();
	     System.out.println("继续请按Y，退出请按其它键。");
	     BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
	     char choiceID=(char)br.read();
	     if(choiceID!='Y')
	     {
	      Flag=false;
	      return;
	     }
	     else if(choiceID=='Y'){
	      Flag=true;
	     }
	    }catch(IOException e){
	     e.printStackTrace();
	    }
	   }
	}


}
